With the advent of the Internet and other public networks, local area networks (LANs) can communicate with other LANs over these public networks to support communications involving data, voice, audio, or video. In an effort to minimize the complexity for devices on a LAN to communicate with devices on another LAN, the communications between the LANs are often supported by emulating the switching techniques employed by the LAN. In other words, the connections supported over the public network are configured to emulate a direct connection to the LAN. These emulated connections are generally referred to as Virtual Private Networks (VPNs), and may support various levels of security to ensure that only authorized users can access the network and that data being transferred cannot be intercepted.
The public network through which the LANs are connected will have numerous routers and switching devices that must be configured to support VPNs. As the network grows and the number of VPNs increases, the difficulty associated with properly updating the network elements to support the VPN grows exponentially. At this time, much of the configuration and provisioning of the network elements is done manually, wherein the network elements are individually provisioned using a command line interface to implement changes in the network or the VPNs that the network supports. As such, there is a need for an efficient and automatic way to update and configure the network elements to support the addition and extension of VPNs, as well as support network growth.